home *** CD-ROM | disk | FTP | other *** search
Wrap
ccccffffllllyyyy((((3333ppppffff)))) OOOOppppeeeennnnGGGGLLLL PPPPeeeerrrrffffoooorrrrmmmmeeeerrrr 2222....5555 RRRReeeeffffeeeerrrreeeennnncccceeee PPPPaaaaggggeeeessss ccccffffllllyyyy((((3333ppppffff)))) NNNNAAAAMMMMEEEE ccccffffllllyyyy - OpenGL Performer scene viewer for PC clusters SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS ccccffffllllyyyy [ options ] file ... rrrruuuunnnn____aaaallllllll____ccccffffllllyyyy [ options ] file ... rrrruuuunnnn____ccccffffllllyyyy daemon_hostname [ options ] file ... DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ccccffffllllyyyy is one of the sample programs distributed with the OpenGL Performer high-performance graphics library. ccccffffllllyyyy is an implementation of ppppeeeerrrrffffllllyyyy for SGI PC-clusters. ccccffffllllyyyy treats each PC screen in the cluster as a graphic pipe on a multi-pipe SGI workstation. ccccffffllllyyyy brings up a window (or full screen) on each cluster console. By default, it breaks the field of view horizontally starting the leftmost portion on the first cluster host and advancing towards the right. All program events are read on the first host. In other words, you can only control cfly (GUI, mouse events, keyboard events) from the leftmost console. ccccffffllllyyyy is a sample implementation demonstrating how to use the DDDDaaaattttaaaaSSSSyyyynnnncccc API for writing multi-screen cluster applications. The DDDDaaaattttaaaaSSSSyyyynnnncccc daemon ddddssssyyyynnnnccccdddd must be running on one of the cluster nodes before starting ccccffffllllyyyy. SSSSttttaaaarrrrttttiiiinnnngggg ccccffffllllyyyy For the sake of the discussion, we assume the master node of the cluster is mmmmaaaasssstttteeeerrrr----cccchhhhaaaannnnnnnneeeellll. Each one of the cluster nodes runs an identical copy of the program cfly. You can either run cfly manually on each node, or use a script that runs them from a single node. The following section demonstrates each one of these operation modes using the data file: town_ogl.pfb. If you wish to run each node separately, enter (on each node): % setenv PFSERVER master-channel % cfly town_ogl.pfb Start at the leftmost node and advance to the right. As new nodes start, cfly breaks the viewer field of view among all the available nodes from left to right in the order that they were activated. If you wish to start cfly from a single node, first make sure all nodes have logged in and executed PPPPaaaaggggeeee 1111 ccccffffllllyyyy((((3333ppppffff)))) OOOOppppeeeennnnGGGGLLLL PPPPeeeerrrrffffoooorrrrmmmmeeeerrrr 2222....5555 RRRReeeeffffeeeerrrreeeennnncccceeee PPPPaaaaggggeeeessss ccccffffllllyyyy((((3333ppppffff)))) % xhost + Start cfly using the provided script on the node master-channel: % run_all_cfly town_ogl.pfb rrrruuuunnnn____aaaallllllll____ccccffffllllyyyy start up ImageSync video synchronization, brings up a remote shell on each on each cluster node and runs a script for setting environment variables and running cfly. Here is the contents of the script rrrruuuunnnn____aaaallllllll____ccccffffllllyyyy: #!/bin/csh # start ImageSync. /usr/share/ImageSync/bin/imagesync -v # Start cfly application on all channels listed in /etc/channel_list # Channels should be listed from left to right to ensure correct # breakup of the cfly field of view. set list=`cat /etc/channel_list` # assume DataSync server runs on master node (this host) set server=`hostname` set c=0 set i=2 while ( $c < $list[1] ) rsh $list[$i] /usr/bin/X11/run_cfly $server $* & @ c = ($c + 1) @ i = ($i + 1) sleep 3 end The script rrrruuuunnnn____ccccffffllllyyyy reads: #!/bin/csh setenv PFSERVER $1 setenv DISPLAY :0 setenv __GL_SYNC_TO_VBLANK 1 PPPPaaaaggggeeee 2222 ccccffffllllyyyy((((3333ppppffff)))) OOOOppppeeeennnnGGGGLLLL PPPPeeeerrrrffffoooorrrrmmmmeeeerrrr 2222....5555 RRRReeeeffffeeeerrrreeeennnncccceeee PPPPaaaaggggeeeessss ccccffffllllyyyy((((3333ppppffff)))) shift /usr/bin/X11/cfly $* Note that rrrruuuunnnn____aaaallllllll____ccccffffllllyyyy uses /etc/channel_list for a list of channels ordered from left to right. If you change the host names of your cluster nodes, you have to update /etc/channel_list. You can also use the script rrrruuuunnnn____ccccffffllllyyyy in order to start ccccffffllllyyyy on a single node. rrrruuuunnnn____ccccffffllllyyyy expects the DDDDaaaattttaaaaSSSSyyyynnnncccc daemon node hostname as its first parameter. In addition to running ccccffffllllyyyy, rrrruuuunnnn____ccccffffllllyyyy also makes OpenGL Performer synchronize its rendering frames to the graphic hardware video frames. UUUUsssseeeerrrr ccccoooonnnnttttrrrroooollllssss,,,, ccccoooommmmmmmmaaaannnndddd lllliiiinnnneeee ooooppppttttiiiioooonnnnssss ccccffffllllyyyy is an adaptation of the ppppeeeerrrrffffllllyyyy source code. Almost all user control is identical to that of ppppeeeerrrrffffllllyyyy. See manual page for ppppeeeerrrrffffllllyyyy for details. ccccffffllllyyyy has one new parameter to the perfly command line flag ----HHHH. This flag now takes four parameters (instead of three): hhhhoooorrrriiiizzzz____ffffoooovvvv,vvvveeeerrrrtttt____ffffoooovvvv,hhhh____ooooffffffffsssseeeetttt,vvvv____ooooffffffffsssseeeetttt. They set custom field-of-view and viewing offset in the horizontal and vertical directions. This option is useful for overriding the automatic projection parameter setting of ccccffffllllyyyy. PPPPaaaacccckkkkaaaaggggeeee ddddeeeeppppeeeennnnddddeeeennnncccciiiieeeessss ccccffffllllyyyy uses DataSync (libds). TTTTrrrroooouuuubbbblllleeee SSSShhhhoooooooottttiiiinnnngggg CCCChhhhaaaannnnnnnneeeellllssss ccccoooommmmeeee uuuupppp wwwwiiiitttthhhh wwwwrrrroooonnnngggg hhhhoooorrrriiiizzzzoooonnnnttttaaaallll ooooffffffffsssseeeettttssss.... The channels listed in /etc/channel_list may be out of order. They should be ordered from left to right. CCCChhhhaaaannnnnnnneeeellllssss ddddoooo nnnnooootttt ssssttttaaaarrrrtttt aaaatttt aaaallllllll Verify that the DDDDaaaattttaaaaSSSSyyyynnnncccc daemon (ddddssssyyyynnnnccccdddd) is running on the same node where you started rrrruuuunnnn____aaaallllllll____ccccffffllllyyyy (for best load-balancing, ddddssssyyyynnnnccccdddd should run on the master channel). Verify that all channel nodes have xhost enabled. NNNNOOOOTTTTEEEESSSS LLLLeeeeaaaarrrrnnnniiiinnnngggg MMMMoooorrrreeee Once you've seen OpenGL Performer in action, you will want to learn more about it. The OpenGL Performer Programming Guide and the OpenGL Performer Release Notes are the primary sources of information, but the a number of information sources are available to give you a good start in PPPPaaaaggggeeee 3333 ccccffffllllyyyy((((3333ppppffff)))) OOOOppppeeeennnnGGGGLLLL PPPPeeeerrrrffffoooorrrrmmmmeeeerrrr 2222....5555 RRRReeeeffffeeeerrrreeeennnncccceeee PPPPaaaaggggeeeessss ccccffffllllyyyy((((3333ppppffff)))) your learning process. The origin of this quest is the Performer man page. Just type "man performer" and just about everything you might want to know will be there or in one of the on-line resources listed there. SSSSEEEEEEEE AAAALLLLSSSSOOOO ppppeeeerrrrffffllllyyyy, ppppeeeerrrrffffoooorrrrmmmmeeeerrrr, ddddssssSSSSeeeerrrrvvvveeeerrrr, ddddssssSSSSeeeessssssssiiiioooonnnn, xxxxhhhhoooosssstttt PPPPaaaaggggeeee 4444